package com.boardgame.example.tris.temp;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.boardgamelib.entity.Cella;
import com.boardgamelib.entity.Giocatore;
import com.boardgamelib.entity.Gioco;
import com.boardgamelib.entity.Mossa;
import com.boardgamelib.entity.Pezzo;

/** Candidato per la libreria
 * 
 * @author g.terenziani
 *
 * @param <C>
 */
public class GiocaPiazzamentoRandom<C extends Cella<P>, G extends Giocatore, P extends Pezzo<G>, M extends Mossa<C, P, G>> {
	
	public M getMossa(Gioco<?, C, G, P, M> gioco, G g, P p) {
		
		List<C> tmp = new ArrayList<C>(gioco.getSistemaTabellone().getTabellone().getCelle());
		
		Collections.shuffle(tmp);
		
		while (tmp.size() > 0) {
			C cella = tmp.remove(0);
			M rv = gioco.getSistemaMosse().costruisciMossa(g, null, p, cella);
			if (rv != null)
				return rv;
		}
		
		return null;
	}

}
